草庐IT

Ruby File 类和方法

全部标签

c# - 在 .Net 中是否有可能在类中的任何方法传递给调用堆栈之前捕获所有未处理的异常?

问题:我想捕获来自类中任何方法的任何异常,以便我可以将类特定数据记录到异常中,以便在将其向上传递到堆栈之前进行日志记录。我知道我可以在类的每个方法中放置一个try-catch,但是方法有很多而且似乎应该有更有效的方法。我目前正在做的事情的例子:publicclassClassA{privateintx;privateinty;publicvoidMethod1(){try{//Somecode}catch(Exceptionex){ex.Data.Add("x",x);ex.Data.Add("y",y);throw;}}publicvoidMethod2(){try{//Someco

c# - 扩展方法重载选择

我有两种扩展方法:publicstaticIPropertyAssertionsShouldHave(thisTsubject){returnnewPropertyAssertions(subject);}publicstaticIPropertyAssertionsShouldHave(thisIEnumerablesubject){returnnewCollectionPropertyAssertions(subject);}现在我写了一些使用它的代码:Listcollection2=newList();collection2.ShouldHave();//firstoverloa

c# - 分配给委托(delegate)的通用方法

我对委托(delegate)和泛型方法有点困惑。是否可以将委托(delegate)分配给具有泛型类型参数的方法?即://Thisdoesn'tallowmetopassagenericparameterwiththedelegate.publicdelegatevoidGenericDelegate()someDelegate=GenericMethod;publicvoidGenericMethod()whereT:ISomeClass{}我正在尝试将此委托(delegate)传递给具有该方法所期望的通用接口(interface)类型的函数,函数如下:voidCheckDelegat

c# - 通过 PartialView 方法返回 View

IwantuseajaxtopreventrefreshmypagesandforthisIwantreturnViewsbyPartialViewmethodfromcontrolleronajaxcall.问题是:将View作为PartialView返回是一种好方法吗?我应该如何在Controller的PartialView方法中设置View路径?例如对于Views/BasicInfo/_Index路径中的_IndexView,我尝试PartialView("~/Views/BasicInfo/_Index");,PartialView("~/Views/BasicInfo/_In

c# - 在 Xunit 中处理多个测试用例的首选方法是什么?

我已经从NUnit迁移到使用Xunit进行单元测试。使用NUnit,我将创建一个方法,其中包含具有相同结果的多个测试用例。例如,下面的NUnit单元测试测试类构造函数的验证,特别是“name”变量。名称不能为null、空或空格。该测试检查是否正确抛出ArgumentNullException:[Test][TestCase(null)][TestCase("")][TestCase("")][ExpectedException(typeof(ArgumentNullException))]publicvoidConstructor_InvalidName_ExceptionThrown

c# - 为什么局部函数生成的 IL 不同于匿名方法和 Lambda 表达式?

为什么C#7编译器将局部函数转换为其父函数所在的同一类中的方法。而对于匿名方法(和Lambda表达式),编译器会为每个父函数生成一个嵌套类,它将包含所有匿名方法作为实例方法?例如,C#代码(匿名方法):internalclassAnonymousMethod_Example{publicvoidMyFunc(string[]args){varx=5;Actionact=delegate(){Console.WriteLine(x);};act();}}将生成类似于以下内容的IL代码(匿名方法):.classprivateautoansibeforefieldinitAnonymousM

c# - 向 WCF ServiceContract 添加方法是否会破坏现有客户端?

我们有一个现有的服务合约[ServiceContract(Namespace="http://somesite.com/ConversationService")]publicinterfaceIConversationService{[OperationContract(IsOneWay=true)]voidProcessMessage(Messagemessage);[OperationContract(IsOneWay=true)]voidProcessMessageResult(MessageResultresult);}我们需要给它添加一个方法[ServiceContract

c# - 如何使用 Moq 修改模拟方法的调用参数?

是否可以修改模拟方法的调用参数?特别是我希望改变buffer在以下示例中为预填充的字节数组。例子:intMockedClass.Read(byte[]buffer,intoffset,intcount)解释:打电话Read负载count从offset读取的字节数到提供的字节数组buffer.现在我想在调用Read之后填充缓冲区已在我的应用程序代码中完成。这可能吗?如果是,我将如何连续调用Read?如果可能的话,我希望连续调用每次都返回不同的缓冲区。编辑:使用Setup像这样的命令:MockedClass.Setup(x=>x.Read(It.IsAny(),It.IsAny(),It.

c# - 如何通过属性包装方法?

我想知道是否可以仅通过添加属性来包装方法。示例:我想记录一个方法所花费的执行时间。[LogTimings]publicvoidwork(){..}这是将一种方法包装到另一种方法中(seethispythonimplementation)。 最佳答案 AOP在.NET中是可能的。这是一个article关于它。这是一个listofAOPframeworks对于.NET。 关于c#-如何通过属性包装方法?,我们在StackOverflow上找到一个类似的问题: ht

c# - 如何使用代码生成动态创建C#方法?

为了在C中定义一个可由Lua调用的方法,它必须匹配给定的签名并使用LuaAPI来检索参数并返回结果。我正在编写Lua的C#包装器,我对能够调用任意C#方法而不使它们遵循这些约定感兴趣。当用D之类的东西包装时,可以使用模板系统为任何给定方法动态创建此胶水代码。我当时认为这在C#中也可能实现,但需要使用动态代码生成。CAPI看起来像这样,生成的代码将通过我的库的较低级别部分来操作它,它P/InvokesLuaC库。staticintfoo(lua_State*L){intn=lua_gettop(L);/*numberofarguments*/lua_Numbersum=0;inti;fo